<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Datastore Documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '#',
        VERSION:     '1.0',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="None" href="index.html" />
    <link rel="next" title="Package Documentation" href="package.html" />
    <link rel="prev" title="HAF eDA Source Code Documentation Index" href="index.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="modindex.html" title="Global Module Index"
             accesskey="M">modules</a> |</li>
        <li class="right" >
          <a href="package.html" title="Package Documentation"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="index.html" title="HAF eDA Source Code Documentation Index"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">Index</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="datastore-documentation">
<h1>Datastore Documentation</h1>
<p>This page contains the Datastore Package documentation.</p>
<div class="section" id="module-datastore.database">
<h2>The <tt class="xref docutils literal"><span class="pre">database</span></tt> Module</h2>
<p>Created on 23/07/2009</p>
<p>&#64;author: eh01</p>
<dl class="class">
<dt id="datastore.database.DataStore">
<em class="property">class </em><tt class="descclassname">datastore.database.</tt><tt class="descname">DataStore</tt><big>(</big><em>namespace=None</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>DataStore uses sqlite3 as the database. The datastore is used to retrieve Resource objects that have been
serialised and persisted in the database.</p>
<dl class="method">
<dt id="datastore.database.DataStore.convert_key_value_pair_to_str">
<tt class="descname">convert_key_value_pair_to_str</tt><big>(</big><em>key_value</em><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.delete">
<tt class="descname">delete</tt><big>(</big><em>resources</em>, <em>connection=None</em><big>)</big></dt>
<dd>Deletes the resources from the datastore defined in resources. resources is a list of Resource types. This method doesn&#8217;t return anything</dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.delete_put">
<tt class="descname">delete_put</tt><big>(</big><em>delete_resources</em>, <em>put_resources</em><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.find">
<tt class="descname">find</tt><big>(</big><em>key_values=None</em><big>)</big></dt>
<dd>returns a list of Resources that have metadata that match ALL those defined in key_values. key_values is a list of tuples (key, value)</dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.gets">
<tt class="descname">gets</tt><big>(</big><em>ids</em><big>)</big></dt>
<dd>returns a list of Resources that have match the ids in ids. ids is a list of ints</dd></dl>

<dl class="attribute">
<dt id="datastore.database.DataStore.ns">
<tt class="descname">ns</tt></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.put">
<tt class="descname">put</tt><big>(</big><em>resources</em>, <em>connection=None</em><big>)</big></dt>
<dd>Either saves a new Resource or updates a existing one. 
resources is a resource or a list of Resource types.
This method does not return anything.</dd></dl>

<dl class="method">
<dt id="datastore.database.DataStore.set_namespace">
<tt class="descname">set_namespace</tt><big>(</big><em>ns</em><big>)</big></dt>
<dd></dd></dl>

</dd></dl>

<dl class="exception">
<dt id="datastore.database.KeyValueStoreException">
<em class="property">exception </em><tt class="descclassname">datastore.database.</tt><tt class="descname">KeyValueStoreException</tt></dt>
<dd>Bases: <tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></dd></dl>

<dl class="exception">
<dt id="datastore.database.NotFoundException">
<em class="property">exception </em><tt class="descclassname">datastore.database.</tt><tt class="descname">NotFoundException</tt></dt>
<dd>Bases: <tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></dd></dl>

</div>
<div class="section" id="module-datastore.resource">
<h2>The <tt class="xref docutils literal"><span class="pre">resource</span></tt> Module</h2>
<p>Created on 24/07/2009</p>
<p>&#64;author: Edward Huynh, Tony Allan</p>
<dl class="exception">
<dt id="datastore.resource.DeserialisationException">
<em class="property">exception </em><tt class="descclassname">datastore.resource.</tt><tt class="descname">DeserialisationException</tt></dt>
<dd>Bases: <a title="datastore.resource.ResourceException" class="reference internal" href="#datastore.resource.ResourceException"><tt class="xref docutils literal"><span class="pre">datastore.resource.ResourceException</span></tt></a></dd></dl>

<dl class="class">
<dt id="datastore.resource.Resource">
<em class="property">class </em><tt class="descclassname">datastore.resource.</tt><tt class="descname">Resource</tt><big>(</big><em>serialised_object=None</em>, <em>strict=False</em>, <em>namespaces=None</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>There are three parts to a resource: id, data and metadata.
Metadata is a set of keys (always a full Uri) and values. The type of the  
value must be one of: Uri, None, Boolean, Int, Long, Float, Unicode, or String.
The metadata key doesn&#8217;t need to be unique. All values are returned if needed.</p>
<p>The data is all non class private variables in the object (these 
&#8220;self.__var&#8221; variables are stored as &#8220;__someclass_var&#8221; in the __dict__) .</p>
<dl class="docutils">
<dt>The following types are recorded and faithfully recreated:</dt>
<dd>None, Boolean, Int, Long, Float, Unicode, Tuple, and String.
Dict/ResourceDict (unordered) and List.
The ID is stored for a Resource reference.</dd>
</dl>
<p>All other types are converted to string.</p>
<p>Uri is needed. Two hard-coded namespaces are needed:
yarra     -&gt; <a class="reference external" href="http://yarra-project.com/terms/yarra/type/">http://yarra-project.com/terms/yarra/type/</a>
datastore -&gt; <a class="reference external" href="http://yarra-project.com/terms/base/datastore/">http://yarra-project.com/terms/base/datastore/</a></p>
<p>All data will be UTF-8.
FIXME: will need to refactor a little to make all strings unicode.</p>
<p>When a new Resource is created it has no id. Content and metadata are added 
as needed. Resource ID&#8217;s are always returned as unicode, not int.</p>
<p>When the Resource is put into the DataStore for the first time, the content
is serialised and the metadata is fetched. The id is set once it has been
allocated. A null id is used to detect that this is a new resource.</p>
<p>On a subsequent put, the DataStore uses the existing id, serialised the
content, and fetches the metadata.</p>
<p>When a Resource is fetched from the DataStore, its id, content and metadata 
are all loaded.</p>
<p>A resource pool can be used to recreate references between a set of
resources. To use this feature, a pool dictionary must be created and
passed to the deserialise(xml, pool) method to deserialise each resource
in the graph. An DeserialiseException is thrown if a new resource is added
to the pool and one with the same ID already exists. The key of the pool
dictionary is the resource id and the value is the Resource instance.</p>
<p>Sample XML:
&lt;?xml version=&#8216;1.0&#8217; encoding=&#8217;UTF-8&#8217;?&gt;
&lt;resource</p>
<blockquote>
<p>xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;
xsi:schemaLocation=&#8221;http://yarra.googlecode.com/files/resource-1.0.xsd&#8221;
id=&#8221;001&#8221;&gt;
&lt;metadata&gt;</p>
<blockquote>
&lt;item key=&#8221;met&#8221;&gt;aaa&lt;/item&gt;
&lt;item key=&#8221;type&#8221;&gt;simple&lt;/item&gt;</blockquote>
<p>&lt;/metadata&gt;
&lt;content&gt;</p>
<blockquote>
<p>&lt;item key=&#8221;junk&#8221; type=&#8221;yarra:type/unicode&#8221;&gt;abc&lt;/item&gt;
&lt;item key=&#8221;b&#8221; type=&#8221;yarra:type/boolean&#8221;&gt;False&lt;/item&gt;
&lt;item key=&#8221;morejunk&#8221; type=&#8221;yarra:type/unicode&#8221;&gt;def&lt;/item&gt;
&lt;item key=&#8221;nill&#8221; type=&#8221;yarra:type/none&#8221; /&gt;
&lt;list key=&#8221;alist&#8221;&gt;</p>
<blockquote>
&lt;item type=&#8221;yarra:type/string&#8221;&gt;one&lt;/item&gt;
&lt;item type=&#8221;yarra:type/string&#8221;&gt;two&lt;/item&gt;
&lt;item type=&#8221;yarra:string&#8221;&gt;three&lt;/item&gt;</blockquote>
<p>&lt;/list&gt;
&lt;dict key=&#8221;adict&#8221;&gt;</p>
<blockquote>
<p>&lt;item key=&#8221;1&#8221; type=&#8221;yarra:type/string&#8221;&gt;one&lt;/item&gt;
&lt;item key=&#8221;2&#8221; type=&#8221;yarra:type/string&#8221;&gt;two&lt;/item&gt;
&lt;list key=&#8221;45&#8221;&gt;</p>
<blockquote>
&lt;item type=&#8221;yarra:type/string&#8221;&gt;four&lt;/item&gt;
&lt;item type=&#8221;yarra:type/string&#8221;&gt;five&lt;/item&gt;</blockquote>
<p>&lt;/list&gt;</p>
</blockquote>
<p>&lt;/dict&gt;
&lt;item id=&#8221;001&#8221; key=&#8221;ref&#8221; type=&#8221;yarra:type/resource&#8221; /&gt;</p>
</blockquote>
<p>&lt;/content&gt;</p>
</blockquote>
<p>&lt;/resource&gt;</p>
<p>If ResourceDict() is used instead of dict(), attribute access is available.
For example res1.aaa.bbb is the same as resr1.aaa[&#8216;bbb&#8217;] if aaa is a ResourceDict().
When a resource is deserialised, all dicts are created as ResourceDict().</p>
<dl class="method">
<dt id="datastore.resource.Resource.del_var">
<tt class="descname">del_var</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Support for variables that don&#8217;t have a valid python variable name.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.delete_metadata">
<tt class="descname">delete_metadata</tt><big>(</big><em>key</em>, <em>value</em><big>)</big></dt>
<dd>Delete a key/value metadata entry. Both the key and value must be specified.
Value may be None.
Raises an exception if the key or value are not found.
If this was the last value for the key, remove the key.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.deserialise">
<tt class="descname">deserialise</tt><big>(</big><em>content</em>, <em>pool=None</em><big>)</big></dt>
<dd>However much of the resource is serialised: id, content and metadata.
TODO: validate against an XML/Schema</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.deserialise_xml_content">
<tt class="descname">deserialise_xml_content</tt><big>(</big><em>node</em>, <em>pool=None</em><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_all_metadata">
<tt class="descname">get_all_metadata</tt><big>(</big><big>)</big></dt>
<dd>Return a list of all of the unique keys and values (each as a two-element list).
The result is sorted by key then value (to aid unit testing).</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_id">
<tt class="descname">get_id</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_metadata">
<tt class="descname">get_metadata</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Return a sorted list containing one or more values or an empty list.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_metadata_keys">
<tt class="descname">get_metadata_keys</tt><big>(</big><big>)</big></dt>
<dd>Return a sorted list of all of the unique keys or none if there are no keys.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_single_metadata">
<tt class="descname">get_single_metadata</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Return a single value or an Exception.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_type">
<tt class="descname">get_type</tt><big>(</big><big>)</big></dt>
<dd>Return the resource type.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_var">
<tt class="descname">get_var</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Support for variables that don&#8217;t have a valid python variable name.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.get_vars">
<tt class="descname">get_vars</tt><big>(</big><big>)</big></dt>
<dd>Get variables for self but omit class private variables of the form
&#8220;_someclass__var&#8221;.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.has_var">
<tt class="descname">has_var</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Support for variables that don&#8217;t have a valid python variable name.</dd></dl>

<dl class="attribute">
<dt id="datastore.resource.Resource.id">
<tt class="descname">id</tt></dt>
<dd>id of resource</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.load_from_file">
<tt class="descname">load_from_file</tt><big>(</big><em>filename</em><big>)</big></dt>
<dd>Primarily to support testing, especially loading uri definitions.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.metadata_has_key">
<tt class="descname">metadata_has_key</tt><big>(</big><em>key</em><big>)</big></dt>
<dd>Return True if the key exists or False otherwise.
Key is always a Uri.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.serialise">
<tt class="descname">serialise</tt><big>(</big><big>)</big></dt>
<dd><p>Metadata and dicts are sorted, so a comparison of the serialised
resource can be used to test equality.</p>
<p>Although I would prefer to use &lt;int&gt;123&lt;/int&gt;, using a generic item
tag and a type attribute makes adding new types transparent.</p>
<p>TODO: Add support for generic types that can be represented as a string.</p>
</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.serialise_content">
<tt class="descname">serialise_content</tt><big>(</big><big>)</big></dt>
<dd>The resource ID and metadata are omitted. This method is used by the
data store.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.set_id">
<tt class="descname">set_id</tt><big>(</big><em>value</em><big>)</big></dt>
<dd>Only set by the DataStore.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.set_metadata">
<tt class="descname">set_metadata</tt><big>(</big><em>key</em>, <em>value</em><big>)</big></dt>
<dd>Add a new key/value metadata entry.
Key is usually a Uri() instance.
Value is None or one of the valid types for metadata.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.set_type">
<tt class="descname">set_type</tt><big>(</big><em>value</em><big>)</big></dt>
<dd>Replace the resource type.</dd></dl>

<dl class="method">
<dt id="datastore.resource.Resource.set_var">
<tt class="descname">set_var</tt><big>(</big><em>key</em>, <em>value</em><big>)</big></dt>
<dd>Support for variables that don&#8217;t have a valid python variable name.</dd></dl>

</dd></dl>

<dl class="class">
<dt id="datastore.resource.ResourceDict">
<em class="property">class </em><tt class="descclassname">datastore.resource.</tt><tt class="descname">ResourceDict</tt></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">dict</span></tt></p>
<p>This dict allows attribute style access to the dictionary keys.
Obviously, the keys must be valid attributes names in order to use these methods.
All normal exceptions are raised.</p>
</dd></dl>

<dl class="exception">
<dt id="datastore.resource.ResourceException">
<em class="property">exception </em><tt class="descclassname">datastore.resource.</tt><tt class="descname">ResourceException</tt></dt>
<dd>Bases: <tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></dd></dl>

</div>
<div class="section" id="module-datastore.uri">
<h2>The <tt class="xref docutils literal"><span class="pre">uri</span></tt> Module</h2>
<p>Created on 17/08/2009.
Major rewrite on 24/09/2009.</p>
<p>&#64;author: Tony Allan</p>
<dl class="docutils">
<dt>Namespaces:</dt>
<dd>dc - <a class="reference external" href="http://purl.org/dc/terms/">http://purl.org/dc/terms/</a>
yarra - <a class="reference external" href="http://yarra-project.com/element/">http://yarra-project.com/element/</a>
eplanning - <a class="reference external" href="http://eplanning.vic.gov.au/terms/">http://eplanning.vic.gov.au/terms/</a></dd>
<dt>Usage:</dt>
<dd><p class="first">uri = Uri(&#8216;<a class="reference external" href="http://yarra-project.com/element/datastore/">http://yarra-project.com/element/datastore/</a>&#8216;)
print(uri.type.root)
if uri.type.root == &#8216;<a class="reference external" href="http://yarra-project.com/element/datastore/type/root">http://yarra-project.com/element/datastore/type/root</a>&#8216;:</p>
<blockquote>
print(&#8216;hello world!&#8217;)</blockquote>
<p class="last">uri = Uri(uri=&#8217;yarra:a/b&#8217;, namespaces=ns)</p>
</dd>
<dt>References:</dt>
<dd><p class="first">Uniform Resource Identifier (URI): Generic Syntax
<a class="reference external" href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a></p>
<p>A URI can be classified as a locator, a name, or both. A &#8220;Uniform Resource
Locator&#8221; (URL) refers to the subset of URIs that, in addition to identifying
a resource, provide a means of locating the resource by describing its
primary access mechanism (e.g., its network &#8220;location&#8221;).</p>
<p>A common misunderstanding of URIs is that they are only used to refer to 
accessible resources.  The URI itself only provides identification; access 
to the resource is neither guaranteed nor implied by the presence of a URI.</p>
<p class="last">Namespaces in XML 1.0
<a class="reference external" href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></p>
</dd>
</dl>
<dl class="exception">
<dt id="datastore.uri.InvalidURLException">
<em class="property">exception </em><tt class="descclassname">datastore.uri.</tt><tt class="descname">InvalidURLException</tt></dt>
<dd>Bases: <tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></dd></dl>

<dl class="class">
<dt id="datastore.uri.Uri">
<em class="property">class </em><tt class="descclassname">datastore.uri.</tt><tt class="descname">Uri</tt><big>(</big><em>uri=None</em>, <em>namespaces=None</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class simplifies the construction and manipulation of URI&#8217;s.
Each Uri has a base and a relative part. The base includes the namespace.</p>
<dl class="method">
<dt id="datastore.uri.Uri.add">
<tt class="descname">add</tt><big>(</big><em>name</em><big>)</big></dt>
<dd>Add another level to the URI.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.collection">
<tt class="descname">collection</tt><big>(</big><em>coll=True</em><big>)</big></dt>
<dd>Turn a URI into (True or None) and out of (False) a collection by 
appending a slash (if there isn&#8217;t already a trailing slash.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.full">
<tt class="descname">full</tt><big>(</big><big>)</big></dt>
<dd>The full URI is returned as a Uri.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.full_uri">
<tt class="descname">full_uri</tt><big>(</big><big>)</big></dt>
<dd>The full URI is returned as a string.
The parts of a URI can always just be joined. Trailing slashes must be correctly includes in any namespace.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.is_collection">
<tt class="descname">is_collection</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.match">
<tt class="descname">match</tt><big>(</big><em>prefix_uri</em><big>)</big></dt>
<dd>Match self to prefix_uri and return True if self starts with prefix_uri and false otherwise.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.split">
<tt class="descname">split</tt><big>(</big><big>)</big></dt>
<dd><dl class="docutils">
<dt>Return a list of the parts. For example:</dt>
<dd>Uri(&#8216;<a class="reference external" href="http://aaa.com:80/aa/bb/cc/dd/ee">http://aaa.com:80/aa/bb/cc/dd/ee</a>&#8216;).split()</dd>
<dt>returns a list:</dt>
<dd>[&#8216;<a class="reference external" href="http://aaa.com:80">http://aaa.com:80</a>&#8216;, &#8216;aa&#8217;, &#8216;bb&#8217;, &#8216;cc&#8217;, &#8216;dd&#8217;, &#8216;ee&#8217;]</dd>
</dl>
<p>&#8220;?&#8221; query and &#8220;#&#8221; fragment parts are ignored.</p>
<p>Using &#8216;/&#8217;.join(list) will result in the original uri.</p>
<p>A URI of None or &#8216;&#8217; will return None.</p>
</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.split2">
<tt class="descname">split2</tt><big>(</big><big>)</big></dt>
<dd><p>An experimental replacement to split where &#8216;&#8217;.join(list) will give the original uri.</p>
<dl class="docutils">
<dt>For the schemes http, https, ftp and file:</dt>
<dd><ul class="first last simple">
<li>the first element is the scheme, domain and port, e.g. &#8216;<a class="reference external" href="http://aaa.com:80/">http://aaa.com:80/</a>&#8216;</li>
<li>the path is split on slash and each element is terminated by that slash.</li>
<li>URL fragments are supported.</li>
</ul>
</dd>
<dt>For the scheme urn:</dt>
<dd><ul class="first last simple">
<li>the URI is split on colon.</li>
</ul>
</dd>
<dt>For the scheme mailto:</dt>
<dd><ul class="first last simple">
<li>the URI is split into mailto: and the rest of the string.</li>
</ul>
</dd>
</dl>
<p>If there is no scheme, the path is split on slash.
If the scheme is unknown, it is terminated with a colon and split on a slash.</p>
</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.uri_copy">
<tt class="descname">uri_copy</tt><big>(</big><big>)</big></dt>
<dd>Create copy of this Uri.</dd></dl>

<dl class="method">
<dt id="datastore.uri.Uri.url">
<tt class="descname">url</tt><big>(</big><big>)</big></dt>
<dd>Parse the URI as a URL.</dd></dl>

</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="#">Datastore Documentation</a><ul>
<li><a class="reference external" href="#module-datastore.database">The <tt class="docutils literal"><span class="pre">database</span></tt> Module</a></li>
<li><a class="reference external" href="#module-datastore.resource">The <tt class="docutils literal"><span class="pre">resource</span></tt> Module</a></li>
<li><a class="reference external" href="#module-datastore.uri">The <tt class="docutils literal"><span class="pre">uri</span></tt> Module</a></li>
</ul>
</li>
</ul>

            <h4>Previous topic</h4>
            <p class="topless"><a href="index.html"
                                  title="previous chapter">HAF eDA Source Code Documentation Index</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="package.html"
                                  title="next chapter">Package Documentation</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="_sources/datastore.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="modindex.html" title="Global Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="package.html" title="Package Documentation"
             >next</a> |</li>
        <li class="right" >
          <a href="index.html" title="HAF eDA Source Code Documentation Index"
             >previous</a> |</li>
        <li><a href="index.html">Index</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright .
      Last updated on Jan 15, 2010.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
    </div>
  </body>
</html>